<?php 

require_once(ROOT . DS . 'config' . DS . 'Configuracao.php');

class Url {

	public $gets = null;

	public $queryString = null;

	private $Config;

	protected $_dominio = null;

	public $urlRequisitada = null;

	public function __construct() {
		$this->Config = new Configuracao;
		
		/* montando o domínio da app */
		$this->_dominio = 'http://' . $_SERVER['HTTP_HOST'];
		$app = explode('/', $_SERVER['PHP_SELF']);
		$this->_dominio .=  '/' . $app[1] . '/';
		unset($app);
		/* fim montagem do domínio */
		
		$this->urlRequisitada = $this->montaEnderecoRequisitado();	
	}
	
	public function montaEnderecoRequisitado() {
		$endereco = explode('/', $_SERVER['REQUEST_URI']);
		return array('controller' => $endereco[2], 'action' => $endereco[3]);
	}
	
	public function montaUrl($url) {
	
		if(!is_null($url)) {
			$this->queryString = explode("/", $url);
		
			foreach($this->queryString as $i => $u) {
				switch($i) {
					case 0:
						$this->gets['controller'] = $u;
						break;
					case 1:
						$this->gets['action'] = $u;
						break;
					case 2:
						$this->gets['id'] = $u;
						break;
					default:
						$this->gets['parametros'][] = $u;
						break;
				}
			}
			
			if(!isset($this->gets['controller'])) $this->gets['controller'] = "Home";
			if(!isset($this->gets['action'])) $this->gets['action'] = "index";
			
		} else {
			$this->queryString = $this->Config->controllerPadrao . '/' . $this->Config->actionPadrao;
			$this->gets['controller'] = $this->Config->controllerPadrao;
			$this->gets['action'] = $this->Config->actionPadrao;
		}
	}
	
	public function getController() {
		return $this->gets['controller'];
	}

	public function getAction() {
		return $this->gets['action'];
	}
	
	public function getQueryString() {
		return $this->queryString;
	}
	
	/**
	*	Monta URL por meio de uma string ou array de parametros
	*	controller e action
	*
	*	@access public
	*	@param $url string|array URL informada a ser montada
	*	@return string URL para redirecionamento
	*/
	public function retornaUrl($url) {
		if(is_array($url)) {
			return $this->_dominio . $url['controller'] . '/' . $url['action'];
		}
	}
	
}

?>
